This invention relates generally to a computer network, and in particular to a multi-port packet processor for processing communication within a computer network.
A computer network is an interconnection of various computers by a network of communication devices (often utilizing more than one communications protocols). One such example of a computer network is the Internet that interconnects personal computers and servers through telephone lines and high-speed transmission lines. Other examples of computer network include a local area network (LAN), a wide area network (WAN), and other special purpose networks including networks based upon protocols such as RS-485 instrumentation protocol and Universal Serial Bus (USB). The interconnection of (relatively) smaller devices into a network facilitates transactions of large scale organizations, allows for efficient dissemination of information, provides for communications between various devices within the network, and allows for sharing of resources and data.
FIG. 1 illustrates a conventional computer network 100. Network 100 includes a number of user computers 110 and servers 112 interconnected together through hubs 120, switches 122, and a router 124. The user computers 110 and servers 112 connect to the network through respective Network Interface Cards (NICs, not shown). The NICs receives data (e.g., in bytes) from the user computer or server and forms data packets for transmission on the network transmission line. The hubs, switches, and routers receive the data packets and direct the packets to the proper destination. At the destination, another NIC receives the data packets and translates the user packets into bytes usable by the computer or server. The interconnection between a pair of devices can be an Unshielded Twisted-Pair (UTP) cable (such as a telephone line), a coaxial cable, a fiber optic cable, or other transmission media.
A network can be viewed as being composed of various layers, with each layer performing a defined function. Each layer communicates with the layer above and/or below it. Furthermore, each layer can be implemented with hardware or software, or a combination of both.
FIG. 2 illustrates the various layers of an Open System Interconnection (OSI) computer network 200. Computer network 200 is composed of seven layers including: (1) a physical layer 210, (2) a data link layer 212, (3) a network layer 214, (4) a transport layer 216, (5) a session layer 218, (6) a presentation layer 220, and (7) an application layer 222. The physical layer 210 transmits bit streams across the physical transmission system. The data link layer 212 provides for a reliable data transmission. The network layer 214 routes data from one network node to another. The transport layer 216 provides data transfer between two users at a predetermined level of quality. The session layer 218 manages the data exchange. The presentation layer 220 presents information to the users in a meaningful manner. Finally, the application layer 222 monitors and manages the computer network 200.
Communication between the various layers is governed by a set of protocols. The layers and protocols, in turn, define the architecture of a network. Conventionally, many diverse protocols exist that are incompatible with other protocols. Some protocols are adopted by large manufacturers to differentiate their products from those of other manufacturers, or for other reasons. Thus, although a product from one product line can communicate with other products from the same product line, it is often incompatible with other products from other manufacturers. Examples of network protocols include Integrated Services Data Network (ISDN), Ethernet, Fast Ethernet, Gigabit Ethernet, Asynchronous Transfer Mode (ATM), Copper Distributed Data Interface (CDDI), Fiber Distributed Data Interface (FDDI) and Fiber Channel (also known as P1394).
Interconnectivity and interoperability between (compatible and incompatible) networks, or segments of a network, can be provided by interconnection devices (e.g., routers, hubs, bridges, gateways). With the proliferation of networks in the marketplace, and the numerous protocols in used, the interconnection devices become an integral part of many networks. Referring to FIG. 2, a hub 230, which operates on the physical layer 210, is used to connect segments of the same network to form an extended network. A hub is also referred to as a repeater. A bridge 232, which operates on the data link layer 212, is used to connect compatible (or nearly compatible) LANs. A router 234, which operates on the network layer 214, connects two network segments to form one large network. Finally, a gateway 236, which operates on any layer at or above the network layer 214, connects an internal network to an external network. The gateway 236 is the most complex but also most flexible interconnection device, as it allows for different protocols at any or all layers on which it operates.
As networks become larger and faster, new applications requiring greater bandwidth become feasible. Examples of high bandwidth applications include video on demand, video games, and others. These applications place stress on various parts of the network architecture, including the NICs, the communications channel, and the interconnection devices (e.g., the servers). A bottleneck is often created in the data communications system, with one likely area of congestion being the main computer bus of the server.
From the above, it can be noted that a processor that facilitates high-speed data communications is needed.
According to the invention, a multi-port packet processor provides an efficient mechanism to interface multiple high-speed packet-based communications channels to each other. The multi-port packet processor is implemented within an integrated circuit for low cost, high performance, and improved reliability.
The multi-port packet processor includes multiple port processors. Each port processor can include a channel interface for coupling to a respective communications channel and a channel processor for processing the packets received through the channel interface. The channel interface can be designed to process packet-based communication from a channel using a particular set of packet-based protocols. Alternatively, the channel interface can be designed having programmable control such that the channel interface can be configured to send and receive packets using a selected set (from a number of possible sets) of packet-based protocols.
Each port processor can further include an interprocessor communications interface coupled to at least one other port processor for providing communication between the port processors.
In a specific embodiment, the port processor is capable of processing multiple communications channels concurrently. The communications channels can have identical packet-based protocols or different packet-based protocols.
The multi-port packet processor can be used in a variety of applications. In one application, the multi-port packet processor functions as a local area network (LAN) processor and provides the functions typically provided by a LAN server. In another application, the multi-port packet processor functions as a disk storage processor and manages data transfer between various storage devices.
The invention will be better understood by reference to the following detailed description with accompanying drawings.